package label

import "github.com/templui/templui/internal/utils"

type Props struct {
	ID         string
	Class      string
	Attributes templ.Attributes
	For        string
	Error      string
}

templ Label(props ...Props) {
	{{ var p Props }}
	if len(props) > 0 {
		{{ p = props[0] }}
	}
	<label
		if p.ID != "" {
			id={ p.ID }
		}
		if p.For != "" {
			for={ p.For }
		}
		class={
			utils.TwMerge(
				"text-sm font-medium leading-none inline-block",
				utils.If(len(p.Error) > 0, "text-destructive"),
				p.Class,
			),
		}
		data-tui-label-disabled-style="opacity-50 cursor-not-allowed"
		{ p.Attributes... }
	>
		{ children... }
	</label>
}
